
/*
*Released on 28th June 2008.
*Any violations can be reported at paritosh@wikiocean.net
*What is treated as violations can be found at www.wikiocean.net/ppl1-voilations*
******************************************************************************
* The contents of this file are subject to POOL Public License 1.0 and later.
* POOL Public License is based on Affero GPL v3 and additional conditions.
* ("License"); You may not use this file except in compliance with the License
* You may obtain a copy of the Affero GPL v3 License at http://www.gnu.org/licenses/agpl.html
* You may obtain a copy of the POOL Public License 1.0 or later at www.wikiocean.net/license/ppl.html
* Software distributed under POOL Public License 1.0 is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Initial Developer of the Original Code is Paritosh Pungaliya (C) 2008. All Rights Reserved.
******************************************************************************
* Objective of the additional terms (license)
* 1) Is to extend the software freedom to freedom to work.
* 2) To ensure that knowledge is free from monopoly of agencies.
* 3) To avoid a situation where big corporate or investor can buy out free software groups and companies and then start milking the communities built around it.
* (this trend can be seen how the freedom is curtailed in companies that get Venture Capital funding.)
******************************************************************************
*/

package  defaultproperty.classes;

import java.util.Hashtable;

import logger.PoolLogger;
import pool.bean.*;
import User.Uservalidation;
import dbmanager.DBManager;
import dbmanager.GetIdName;


public class Autoincrement implements Class
{
		Hashtable<Object ,Object> table = new Hashtable<Object, Object>();
		String LASTVALUE="lastvalue";
		String Object;
		String SYSTEMUSER="+911234567891";
		GetIdName gid;
		PoolLogger pl;
		
		public Autoincrement() 
		{
			// logger
			pl = (PoolLogger) PoolLogger.getLogger(this.getClass().getName());
		}
		
		public String getResult() 
		{
			Uservalidation user =new  Uservalidation();
			String PASSWORD=user.getPasword(SYSTEMUSER);
			
			if(table.containsKey(LASTVALUE))
			{
				int lastvalue = Integer.parseInt(table.get(LASTVALUE).toString());
				control.RequestParameter req = new control.RequestParameter();
				req.setUsername(SYSTEMUSER);
				req.setMessage("System Message");
				req.setPassword(PASSWORD);
				req.setRequest("proerty_details");
				req.setProcess("mod");
				Property_details_Bean propertybean = new Property_details_Bean();
				propertybean.setReqParam(req);
				propertybean.initPool();
				Hashtable<Object, Object> oldmap = new Hashtable<Object, Object>();
				oldmap.put("mid", Object);
				oldmap.put("pid", LASTVALUE);
				oldmap.put("pv", lastvalue);
				
				Hashtable<Object, Object> newmap = new Hashtable<Object, Object>();
				newmap.put("mid", Object);
				newmap.put("pid", LASTVALUE);
				newmap.put("pv", lastvalue+1);
				propertybean.setOldPropertyHash(oldmap);
				propertybean.setNewPropertyHash(newmap);
				propertybean.update();
				return Integer.toString(lastvalue+1);
			}
			else
			{
				control.RequestParameter req = new control.RequestParameter();
				req.setUsername(SYSTEMUSER);
				req.setMessage("System Message");
				req.setPassword(PASSWORD);
				req.setRequest("proerty_details");
				req.setProcess("add");
				Property_details_Bean propertybean = new Property_details_Bean();
				propertybean.setReqParam(req);
				Hashtable<Object, Object> oldmap = new Hashtable<Object, Object>();
				oldmap.put("mid", Object);
				oldmap.put("pid", LASTVALUE);
				oldmap.put("pv", "1");
				propertybean.initPool();
				propertybean.setMid(Object);
				propertybean.setPropertyHash(oldmap);
				propertybean.insert();
				return Integer.toString(1);
			}	
			
		}
		
		
		public void setObject() 
		{	
			gid =new GetIdName();
		}

		public void setPropertymap(Hashtable<Object, Object> propetrymap,String Object) 
		{
			this.table.putAll(propetrymap);
			this.Object = gid.getItem(Object);
		}
}
